import numpy as np

# 损坏类型总数, 沥青路面21, 水泥混凝土路面取20
N = 21
# 路面检测或调查面积(m**2)
# 示例调查路面长度51.50Km, 路面宽度3.4090m
A = 51.50 * 1000 * 3.4090

# 一个网格的标准尺寸大小为0.1m * 0.1m
GNi = np.random.randint(10, 1000, (1, N))  # 随机生成每类路面损坏的网络数

# 第i类路面破损累计面积(m**2)
Ai = 0.01 * GNi

# 第 i 类路面损坏的权重或换算系数
Wi = np.array([[0.6, 0.8, 1.0, 0.6, 0.8,
                0.6, 1.0, 0.6, 1.0, 0.6, 1.0, 0.6, 1.0, 0.6, 1.0,
                0.8, 1.0, 0.6, 1.0, 0.2, 0.1]])

# print(Wi)


def RD():
    return 100 * np.sum(Wi * Ai) / A


def PCI():
    a0 = 15.00  # 沥青路面采用 15.00，水泥混凝土路面采用 10.66
    a1 = 0.412  # 沥青路面采用 0.412，水泥混凝土路面采用 0.461
    rd = RD()
    return 100 - a0 * (rd ** a1)

